function ccR_PreRotation()

	-- Dont run if dead/ghost/feign death
	if UnitIsDead("Player") == 1
	or UnitIsGhost("Player") == 1
	or ccrPlayerHasBuff("Feign Death")
	or ccrPlayerHasBuff("Shadowmeld")
	then
		return
	end;

	ccR_Racials()
	ccR_Custom_Features()

	-- sys\functions\AutoTarget.lua
	if ccRS.Auto_Target then AutoTarget() end;

	if ccrValidTarget()  
	and not ccrPlayerIsInStealth()
	then
		if ccRS.StartAttack_On_Target then
			if ccrPlayerIsMelee() and ccrTargetIsWithinMeleeRange() and IsStealthed() == nil then StartAttack() end;
			if ccrPlayerIsRanged() and ccrTargetIsWithinRanged() and not ccrPlayerIsCaster() then StartAttack() end;
		end
		if ccRS.Trinkets_In_Combat
		and ccrPlayerIsInCombat()
		then
			if ccrPlayerIsMelee() and ccrTargetIsWithinMeleeRange() and IsStealthed() == nil then UseTrinkets() end;
			if ccrPlayerIsRanged() and ccrTargetIsWithinRanged() and not ccrPlayerIsCaster() then UseTrinkets() end;
			if ccrPlayerIsRanged() and ccrTargetIsWithinRanged() and ccrPlayerIsCaster() and ccrPlayerIsInCombat() then UseTrinkets() end;
		end
		-- sys\functions\AutoFacing.lua
		if ccRS.Auto_Facing then AutoFacing() end;
	end

	-- sys\start-rotation.lua
	ccR_Start_Rotation()
end